package cn.com.egova.erp.action;

import cn.com.egova.erp.biz.IEmpBiz;
import cn.com.egova.erp.entity.Emp;
import cn.com.egova.erp.entity.Menu;
import cn.com.egova.erp.entity.Tree;
import cn.com.egova.erp.utils.FastJsonUtil;

import java.util.List;

/**
 * 员工Action
 *
 * @author Administrator
 */
public class EmpAction extends BaseAction<Emp> {

    private IEmpBiz empBiz;
    private String checkedStr;

    public void setEmpBiz(IEmpBiz empBiz) {
        this.empBiz = empBiz;
        super.setBaseBiz(this.empBiz);
    }

    private String oldPwd;//旧密码
    private String newPwd;//新密码

    public String getOldPwd() {
        return oldPwd;
    }

    public void setOldPwd(String oldPwd) {
        this.oldPwd = oldPwd;
    }

    public String getNewPwd() {
        return newPwd;
    }

    public void setNewPwd(String newPwd) {
        this.newPwd = newPwd;
    }

    public String getCheckedStr() {
        return checkedStr;
    }

    public void setCheckedStr(String checkedStr) {
        this.checkedStr = checkedStr;
    }

    /**
     * 修改密码调用的方法
     */
    public void updatePwd() {
        Emp loginUser = getLoginUser();
        //session是否会超时，用户是否登陆过了
        if (null == loginUser) {
            ajaxReturn(false, "亲，您还没有登陆");
            return;
        }
        try {
            empBiz.updatePwd(loginUser.getUuid(), oldPwd, newPwd);
            ajaxReturn(true, "修改密码成功");
        } catch (Exception e) {
            e.printStackTrace();
            ajaxReturn(false, "修改密码失败");
        }
    }

    /**
     * 重置密码调用的方法
     */
    public void updatePwd_reset() {

        try {
            empBiz.updatePwd_reset(getId(), newPwd);
            ajaxReturn(true, "重置密码成功");
        } catch (Exception e) {
            e.printStackTrace();
            ajaxReturn(false, "重置密码失败");
        }
    }


    /**
     * 获取用户角色
     */
    public void readEmpRoles() {
        try {
            List<Tree> menus = empBiz.readEmpRoles(getId());
            System.out.println("------------readEmpRoles-------------");
            System.out.println(menus.toString());
            FastJsonUtil.ajaxReturn(true, "获取用户角色成功!", menus);
        } catch (Exception e) {
            e.printStackTrace();
            System.out.println("------------readEmpRoles error-------------");
            FastJsonUtil.ajaxReturn(false, "获取用户角色失败!", null);
        }
    }


    /**
     * 更新用户角色
     */
    public void updateEmpRoles() {
        try {
            empBiz.updateEmpRoles(getId(), checkedStr);
            FastJsonUtil.ajaxReturn(true, "更新用户角色成功!", null);
        } catch (Exception e) {
            e.printStackTrace();
            FastJsonUtil.ajaxReturn(false, "更新用户角色失败!", null);
        }
    }

    /**
     * 获取用户菜单
     */
    public void getMenusByEmpUuid() {
        try {
            Emp loginUser = getLoginUser();
            if (loginUser == null) {
                FastJsonUtil.ajaxReturn(false, "请先登录!", null);
                return;
            }
            List<Menu> menus = empBiz.getMenusByEmpUuid(loginUser.getUuid());
            FastJsonUtil.ajaxReturn(true, "获取用户菜单成功!", menus);
        } catch (Exception e) {
            e.printStackTrace();
            FastJsonUtil.ajaxReturn(false, "获取用户菜单失败!", null);
        }
    }
}
